﻿<?php


class galerie extends Controller{

	function galerie()
	{
		parent::Controller() ;
		
		$this->article = "test";//new article;
		$this->load->library('session');
	}


	function index()
	{

		$data = array();
		$data = $this->gen_base_data();
		//$data['galeries'] = $this->gen_galeries();
		//print_r($data);
		$this->load->view('admin_view', $data) ;
	}

	
	
	
	
	
/***********************************************************************************************************************
************************                                ADMIN GALERIE
**************************************************************************************************************************/
	
	

	
	
	/***************************************************************************************************/
	
	
	
	
	function gen_liste_photo() {
		@$id_lieu = $_POST['id_lieu'];
		@$id_theme = $_POST['id_theme'];
		
		
	}
	
	
	
	
	
	
	
	
	
	
	
	
	/***************************************************************************************************/
	

	
	function choix_lieu_image() {
		
		$liste = $this->db->get('lieux');		
		
		$contenu =  "Veuillez sélectionner un lieu<br/>
						<select name=\"choix_lieu_image\" style='width:35em' id=\"lieu\" >";
							foreach ($liste->result() as $lieu){
										$contenu .="<option value=".$lieu->id.">".$lieu->adresse."</option>";		
							}
							//$contenu .="<input type=\"button\" value=\"\" id=\"bouton_choix_lieu\"/>\n";
						
		if ( !$this->session->userdata('login') && false){
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		echo $contenu;
		return;
	}	
	
	function choix_theme_image() {
		$liste = $this->db->get('themes');		
		
		$contenu =  "Veuillez sélectionner le thème de la galerie<br/>
						<select name=\"choix_theme_image\" style='width:15em' id=\"theme\" >";
							foreach ($liste->result() as $theme){
										$contenu .="<option value=".$theme->id."><h5>".$theme->intitule."</option>";		
							}
						
		if ( !$this->session->userdata('login') && false){
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		echo $contenu;
		return;		
	}

	
	/*
	function upload_image() {
		
		$data['base_url'] = base_url();
		
		//echo print_r($_POST);
		//return;
		
		$resultat = "";
		$data = array();
		$data = $this->gen_base_data();
		$data['upload_resultat'] = "";

		$config['upload_path'] = './images/';
		$config['allowed_types'] = 'gif|jpg|png|bmp';
		$config['max_size'] = '2048';
		$config['max_width'] = '0';
		$config['max_height'] = '0';
		$config['overwrite'] = true;
		$this->load->library('upload', $config);


		for($i=1;$i<$_POST['max_champ'];$i++) {
			$nom_champ = "userfile_".$i;
			if (!$this->upload->do_upload($nom_champ))
				$data['upload_resultat'] .= $this->upload->display_errors()."<br/>".$nom_champ."<br/>";
			else {
				$nom_champ = "userfile_".$i;
				$path_tmp = "images/".basename($_POST['hidden_'.$i]);
				$path_tmp_sample = "images/apercus/apercu_".basename($_POST['hidden_'.$i]);			
				$this->creer_apercu(basename($_POST['hidden_'.$i]),75);

				//arrangement de la date
				$date = $_POST['calendrier'];
				sscanf($date, "%d/%d/%d", $m, $d, $y);
				$date = mktime(0, 0, 0, $m, $d, $y); 
				$date = date("Y-m-d h:i:s", $date );
				
				$lieu_id=$_POST['choix_lieu_image'];
				$theme_id=$_POST['choix_theme_image'];
				
				$description = $_POST['textfile_'.$i];

				
				$data_sql = array(	'chemin'=>$path_tmp,
									'description'=>$description,
									'auteur_id'=>$this->session->userdata('id'),
									'date' => $date,
									'sample' => $path_tmp_sample,
									'lieu_id' => $lieu_id,
									'theme_id' => $theme_id);
				
				//Pour éviter les doublons on cherche dans la base si l'image existe déjà.
				$this->db->where('chemin',$path_tmp);
				if($this->db->count_all_results('photos') ==0) {
					$this->db->insert('photos',$data_sql);
					$data['upload_resultat'] .= basename($_POST['hidden_'.$i])." uploadé avec succes<br/>\n";
				}
				else {
					$data['upload_resultat'].=basename($_POST['hidden_'.$i])." existe déjà.<br/>\n";
				}
				unset($data_sql);
			}
		}
		
		
		$this->load->view('admin_view',$data);

	}
	
	
	/*
	Attention : $img contient le nom complet de l'image d'origine tandis que $new_name ne doit contenir que le nom (sans l'extension) de l'image de destination.
	*/
	/*
	function creer_apercu($nom_img,$thumb_w) {
		
		
		// load image and get image size
		$chemin = base_url()."images/".$nom_img;
		$img = imagecreatefromjpeg($chemin);
		$width = imagesx( $img );
		$height = imagesy( $img );
		

		// calculate thumbnail size
		$new_width = $thumb_w;
		$new_height = floor( $height * ( $thumb_w / $width ) );		

		// create a new temporary image
		$tmp_img = imagecreatetruecolor( $new_width, $new_height );	 

		// copy and resize old image into new image
		$test = imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );		
		if(!$test) echo "Probleme lors de la creation + resize...<br/>\n";
		
		// save thumbnail into a file
		//$chemin_apercu = base_url()."images/apercus/apercu_".$nom_img;
		$chemin_apercu = "images/apercus/apercu_".$nom_img;
		imagejpeg( $tmp_img,$chemin_apercu);
	}

	*/
	
	
	/*
	function gen_liste_galerie() {
		
		$resultat = "";
		$resultat .= "Choisissez la galerie à modifier<br/>";
		$resultat .= "<select name='liste_galerie' id='liste_galerie'>\n";
		$resultat .= "<option selected></option>\n";
		$liste_galerie = $this->db->get('galerie');
		foreach($liste_galerie->result() as $val) {
			$resultat .= "<option value='".$val->id."'>".$val->nom."</option>\n";
		}
		$resultat .= "<option value='ajoute_galerie'>Ajouter une galerie</option>\n";
		$resultat .= "</select><div id='ajoute_galerie'></div><br/><br/>\n";
		echo $resultat;
		
		return;
	}
	
	function modifie_galerie() {
		$resultat = "";
		
		$id = $_POST['galerie_id'];
		$resultat .= "<table border='0px' cellspacing=0 cellpadding='5px' id='".$id."' class='table_galerie' style='border: 1px solid black'>\n";
		$resultat .= "<tr>\n";
		$this->db->where('galerie_id',$id);
		$liste_photos = $this->db->get('photos');
		$i=0;
		foreach($liste_photos->result() as $photo) {
			
			$resultat .= "<td align='center'>\n";
			$resultat .= "<a href='".base_url().$photo->chemin."' class='galerie_".$id."'>\n";
			$resultat .= "<img src='".base_url().$photo->sample."'/>";
			$resultat .= "</a>\n";
			$resultat .= "<br/><input type='checkbox' name='image_suppr' value='".$photo->id."'/>\n";
			$resultat .= "</td>\n";
			$i++;
			if($i%6 == 0) $resultat.="</tr>\n<tr>\n";
		}
		$resultat .= "</tr>\n";
		$resultat .= "<tr><td colspan=5><input type='button' value='supprimer les images sélectionnées' id='faire_suppression'/></td></tr>\n";
		$resultat .= "<tr><td colspan=5 id='ajoute_image_galerie'><input type='button' value='ajouter des images à catte galerie' id='ajouter_image_galerie'/></td></tr>\n";
		$resultat .="</table>\n";
		
		
		echo $resultat;
		return;
	}
	
	function supprime_image() {
		$id = $_POST['image_id'];
		$this->db->where('id',$id);
		$this->db->delete('photos');
		
		
		$galeries = $this->db->get('galerie');
		foreach($galeries->result() as $galerie) {
			$this->db->where('galerie_id',$galerie->id);
			$nb_photos = $this->db->count_all_results('photos');
			
			if($nb_photos == 0) {
				$this->db->where('id',$galerie->id);
				$this->db->delete('galerie');
				continue;
			}
		}
	}

	*/
	
/***********************************************************************************************************************
************************                                AFFICHAGE GALERIES
**************************************************************************************************************************/
	function gen_liste_lieux_themes() {
		$res = "";
	
		$res .= $this->gen_liste_lieux();
		$res .= "&nbsp;&nbsp;&nbsp;\n";
		$res .= $this->gen_liste_theme();
		$res .= "<br/>\n";
		$res .= $this->gen_choix_trier_dates();
		
		echo $res;
	}


	function gen_liste_lieux() {
		$res = "";
		
		$res .= "<select name=\"choix_lieu_image\" style='width:15em'>";
		$res .= "<option value='-1' selected>Pas de préférence de lieu</option>\n";
		$this->db->order_by('nom_lieu','asc');
		$liste_lieux = $this->db->get('lieux');
		foreach ($liste_lieux->result() as $lieu){
					$res .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";
		}
		$res .= "</select>\n";		
		
		echo $res;
	}
	
	function gen_liste_theme() {
		$res = "";
		
		$res .= "<select name=\"choix_theme_image\" style='width:15em'>\n";
		$res .= "<option value='-1' selected>Pas de préférence de thème</option>\n";
		$this->db->order_by('intitule','asc');
		$liste_themes = $this->db->get('themes');
		foreach($liste_themes->result() as $theme) {
			$res .="<option value=".$theme->id.">".$theme->intitule."</option>";
		}
		$res .= "</select>\n";		
		
		echo $res;
	}

	//pour afficher un choix des dates
	function gen_choix_trier_dates() {
						
		$contenu =  "<p>Affiner la recherche avec des dates.<br/>
			<form method=\"post\" name='choix_dates' id ='choix_dates'>
				<input type=\"date\" name=\"calendrier_debut\" id='calendrier_debut' value='' SIZE=25 readonly='true'/>
					<a href=\"javascript:void(0)\" name=\"choix_date_debut\" id='date_debut'>choisir le début</A><br/>
				<input type=\"date\" name=\"calendrier_fin\" id='calendrier_fin' value='' SIZE=25 readonly='true'/>
					<a href=\"javascript:void(0)\" name=\"choix_date_fin\" id='date_fin'>choisir la fin</A><br/>
				<input type='button' id='afficher_critere' value='afficher'>\n
			</form>
			</p>";
		
		echo $contenu;
	}			

	
	function gen_liste_photos_visualisation() {
		if(isset($_POST['id_lieu']))
			$id_lieu = $_POST['id_lieu'];
		else
			$id_lieu = -1;
			
		if(isset($_POST['id_theme']))
			$id_theme = $_POST['id_theme'];
		else
			$id_theme = -1;
		
		if($id_lieu != -1) 
			$this->db->where('lieu_id',$id_lieu);
		
		if($id_theme != -1)
			$this->db->where('theme_id',$id_theme);

		//arrangement des dates
		if(isset($_POST['date_debut'])) {
			$date_debut = $_POST['date_debut'] ;
			if($date_debut != '') {
				sscanf($date_debut, "%d/%d/%d", $m, $d, $y) ;
				$date_2_debut = mktime(0, 0, 0, $m, $d, $y) ; 
				$date_de_debut = date("Y-m-d h:i:s", $date_2_debut );
				$this->db->where('date >=', $date_de_debut);
			}
		}
		
		if(isset($_POST['date_fin'])) {
			$date_fin = $_POST['date_fin'] ;
			if($date_fin != '') {
				sscanf($date_fin, "%d/%d/%d", $m, $d, $y) ;
				$date_2_fin = mktime(0, 0, 0, $m, $d, $y) ; 
				$date_de_fin = date("Y-m-d h:i:s", $date_2_fin );
				$this->db->where('date <=', $date_de_fin);
			}
		}

		if($this->db->count_all_results('photos') == 0) {
			$res = "Pas de photos associés à ces critères.\n";
			echo $res;
			return;
		}

		if($id_lieu != -1){
			$lieux = $this->db->get_where('lieux',array('id'=>$id_lieu));
			$lieux = $lieux->result();
			$nom_lieu = $lieux[0]->nom_lieu;
		}
		if($id_theme != -1) {
			$themes = $this->db->get_where('themes',array('id'=>$id_theme));
			$themes = $themes->result();
			$nom_theme = $themes[0]->intitule;
			$this->db->where('theme_id',$id_theme);
		}
		
		if($id_lieu != -1) {
			$this->db->where('lieu_id',$id_lieu);
		}
		
		if(isset($date_de_debut))
			$this->db->where('date >=', $date_de_debut);	
		
		if(isset($date_de_fin))
			$this->db->where('date <=', $date_de_fin);
		
		$this->db->order_by('date','desc');
		$this->db->order_by('lieu_id','asc');
		$this->db->order_by('theme_id','asc');
		$liste_photos = $this->db->get('photos');
		$this->db->get('photos');
		
		$res = "";
		$nbr = 0;		

		if(isset($nom_lieu)) {
			$res .= "Lieu : ".$nom_lieu."  ";
		}
		if(isset($nom_theme)) {
			$res .= "Thème : ".$nom_theme;
		}
		
		if(isset($date_de_debut))
			$res .= "<br/>Photos prises après le ".substr($date_de_debut,0,10).".   ";
		
		if(isset($date_de_fin))
			$res .= "Photos prises avant le ".substr($date_de_fin,0,10);
		
		if(!isset($nom_lieu) && !isset($nom_theme) && !isset($date_de_debut) && !isset($date_de_fin) ) 
			$res .= "Toutes les photos :";
		
		$res .= "<table cellspacing=0 cellpadding=5 border=0 style=\"border: 1px outset #2D4789; margin: 10px; align:center;\"> \n";		
		$res .= "<tr>\n";
		foreach($liste_photos->result() as $photo) {
			$nbr++;
		
			$this->db->where('id',$photo->auteur_id);
			$nom_auteur = $this->db->get('auteurs');
			$nom_auteur = ($nom_auteur->result());
			$nom_auteur = $nom_auteur[0]->nom;
		
			$res .= "<td><a href='".base_url().$photo->chemin."' class='galerie_1' title=\"".$photo->description."<br/>Photo prise par ".$nom_auteur."<br/>le ".substr($photo->date,0,10)."\">\n";
			$res .= "<img src='".base_url().$photo->sample."'/></a>\n";
			$res .= "</td>\n";
			
			$nbr++;
			if($nbr%5 == 0) {
				$res .= "</tr>\n<tr>\n";
			}
		}
		
		$res .= "</tr></table>\n";
		if($nbr == 0)
			$res = "";
		$res .= "<input type='hidden' name='id_lieu_image_selected' value='".$id_lieu."'/>\n";
		$res .= "<input type='hidden' name='id_theme_image_selected' value='".$id_theme."'/>\n";		
		
		echo $res;
	}

/*

	function gen_galeries() {
		$resultat = array();
		$galeries = $this->db->get('galerie');
		foreach($galeries->result() as $galerie) {
			$resultat[$galerie->id]['nom'] = $galerie->nom;
			$resultat[$galerie->id]['description'] = $galerie->description;
			
			$resultat[$galerie->id]['contenu'] = $this->gen_galerie_id($galerie->id);
		}
		
		return $resultat;
	}
	
	
	function gen_galerie_id($id) {
		$resultat = "";
		
		$i=0;
		$this->db->where('galerie_id',$id);
		$images = $this->db->get('photos');
		foreach($images->result() as $img) {
			$this->db->where('id',$img->auteur_id);
			$auteurs = $this->db->get('auteurs');
			foreach($auteurs->result() as $auteur) {$nom_auteur = $auteur->nom;}
			
			$resultat .= "<a href='".base_url().$img->chemin."' class='galerie_".$id."' title='".$img->description."  Photo prise par ".$nom_auteur."'>\n";
			$resultat .= "<img src='".base_url().$img->sample."'></img></a>\n";
			$i++;
			if($i%5 == 0) $resultat.="<br/>\n";
		}
		
		return $resultat;
	}

*/
	
	//Méthode qui génère les menus, les scripts javascripts et les css !
	function gen_base_data() {
		/*
		*	Mettre ici les script javascript à charger. par défaut, le path est base_url()/javascript/
		*/
		//Les trucs de base et les liens pour les menus
		$data['javascript'] = array('jquery.js','CalendarPopup.js','galerie/galerie_view.js','galerie/admin_view.js','liens_smenu_photos.js','liens_smenu_admin');
		
		//pour le texte riche :
		array_push($data['javascript'],'tiny_mce/tiny_mce.js');
		
		//Pour les galerie d'images :
		array_push($data['javascript'],'galerie/jquery.lightbox.js','galerie/init_lightbox.js','CalendarPopup.js');		
		
		/*
		*	Mettre ici les CSS àcharger. Le path par défaut est base_url()/css/
		*/	
		$data['css'] = array('blog.css','lightbox.css');
	
		$data['titreblog'] = "Souvenirs de voyage -- Les galeries";
		$data['menu'] = array("<a href=\"article\">Articles</a>","<a href='galerie'>Photos</a>","<a href=\"video\">Vidéos</a>","<a href=\"carte\">Cartes</a>");
		
		
		//les blocs de gauche
		//les affichage d'articles
		$data['smenu']['Voir des photos'] = array("<a href='javascript:void(0)' id='visualiser_photos'>Voir et choisir des photos</a>");
		//les liens
		$data['smenu']['Liens'] = array("<a href=\"http://code.google.com/p/inf347\">Les sources sur le svn google</a>","<a href=\"http://bubusite.servhome.org\">Le futur hébergeur?</a>");
		$data['smenu']['Administrer'] = array("<a href='admin'>S'identifier</a>");

		
		//les statistiques, il faut raffraichir la page pour les changer
		$nb_articles = $this->db->get('articles')->num_rows() ;
		$nb_commentaires = $this->db->get('commentaires')->num_rows() ;
		$nb_photos = $this->db->get('photos')->num_rows() ;
		$nb_videos = $this->db->get('videos')->num_rows() ;
		$nb_lieux = $this->db->get('lieux')->num_rows() ;
		$data['smenu']['Statistiques'] = array($nb_articles." articles", $nb_commentaires." commentaires", $nb_photos." photos", $nb_videos." vidéos", $nb_lieux." lieux");
		
		return $data;
	}
	
}

?>